}
}
+static void
+session_thread_set_cookie_jar_cb (ThreadClosure *thread_closure,
+ gpointer data)
+{
+ SoupCookieJar *jar = data;
+
+ soup_session_add_feature (thread_closure->session,
+ SOUP_SESSION_FEATURE (jar));
+}
+
#ifdef HAVE_LIBSOUP_CLIENT_CERTS
static void
session_thread_set_tls_interaction_cb (ThreadClosure *thread_closure,
}
}
+void
+_ostree_fetcher_set_cookie_jar (OstreeFetcher *self,
+ const char *jar_path)
+{
+ SoupCookieJar *jar;
+
+ g_return_if_fail (OSTREE_IS_FETCHER (self));
+ g_return_if_fail (jar_path != NULL);
+
+ jar = soup_cookie_jar_text_new (jar_path, TRUE);
+
+ session_thread_idle_add (self->thread_closure,
+ session_thread_set_cookie_jar_cb,
+ jar, /* takes ownership */
+ (GDestroyNotify) g_object_unref);
+}
+
void
_ostree_fetcher_set_client_cert (OstreeFetcher *self,
GTlsCertificate *cert)
int _ostree_fetcher_get_dfd (OstreeFetcher *fetcher);
+void _ostree_fetcher_set_cookie_jar (OstreeFetcher *self,
+ const char *jar_path);
+
void _ostree_fetcher_set_proxy (OstreeFetcher *fetcher,
const char *proxy);
_ostree_fetcher_set_proxy (fetcher, http_proxy);
}
+ {
+ g_autofree char *jar_path = NULL;
+ g_autofree char *cookie_file = g_strdup_printf ("%s.cookies.txt",
+ remote_name);
+
+ jar_path = g_build_filename (g_file_get_path (self->repodir), cookie_file,
+ NULL);
+
+ if (g_file_test(jar_path, G_FILE_TEST_IS_REGULAR))
+ _ostree_fetcher_set_cookie_jar (fetcher, jar_path);
+
+ }
+
success = TRUE;
out: